Integrated software is a collection of individually developed software components that are assembled and integrated to solve customer problems in a specified domain. Typically, integrated software involves multi-platform software that eliminates the complexities associated with integrating software products to execute on several different platforms. Examples of such integrated software include Java Enterprise System™ (Java ES) and operating systems such as Windows XP®, etc.
To ensure proper functioning of the system as whole, each individual component of the integrated software must be properly installed, configured, and integrated. Installation is the first step that a user experiences before the various components of the integrated software can be used. Generally, the installation process involves copying files to the hard disk of a system (e.g., in a particular directory of the hard disk). In addition, the installation process makes specific system-level modifications to recognize the installation of one or more components, such as modifications to registry entries. For example, when Windows XP® is installed, several files are copied to the system hard disk, and the windows registry is modified to include the names of the files that are copied to the system hard disk.
Successful installation of integrated software heavily depends on the state of the user's system at the time that the installation procedure is being performed. If user's system is in an inconsistent state when installation is being performed, failures in the installation process may occur. Examples of inconsistent system states may include the presence of inconsistent/stale registry entries. Inconsistent registry entries occur when files that are copied to a particular directory are present on the system, but the corresponding entries have been deleted or removed from the system registry. Alternatively, the opposite scenario could also occur, in which entries are present in the system registry, but the actual files are not copied to the system hard disk. In this case, it appears to the registry that these files exist on the system, when the files actually are not copied to the system hard disk. Further, the presence of improper software components can also affect the installation process.
Installation of integrated software typically occurs using installation programs that automatically perform the installation of the integrated software. Installation programs typically check whether sufficient memory (e.g., random access memory, read-only memory) exists in the system for the installation to be performed. An installation failure causes the user to manually clean up the system to bring the system back to a consistent state. Some installation programs that are configured to detect basic inconsistencies with the system state still require the user to correct the inconsistencies before proceeding with installation.